GO
action

Sistema: Casino Slots [Cassino]

Por gonorreiaswat, 24 de abr. de 2015 em Mods, funções e outros

script
otserv
16
24.7k
gonorreiaswatG
24 de abril de 2015 às 09:28

Bom dia turma do Xtibia.

Venho trazer um script que fiz para um usuário de outro fórum, abaixo seguem maiores informações sobre.

 

  • Introdução:

  • Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo:

     

    casino-slots.jpg

     

 

 

  • Como funciona?

  • O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu.

  • Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável).

 

  • Como jogar?

  • Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar.

  • Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado.

  • Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca.

  • E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente.

 

  • Dicas de instalação!

  • Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo:

    WWUMqIe.jpg

     

 

  • Instalando:

  • Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro:

     

     

    ------- Script by: Adriano Swatt ----
    local condition_infight = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

    local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.
    local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.
    local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens.
    local items = {
    [0] = {0}, -- NEUTRO
    [1] = {2182}, -- ID do ITEM 1
    [2] = {2183}, -- ID do ITEM 2
    [3] = {2184}, -- ID do ITEM 3
    [4] = {2185}, -- ID do ITEM 4
    [5] = {2186}, -- ID do ITEM 5
    [6] = {2187}, -- ID do ITEM 6
    [7] = {2188}, -- ID do ITEM 7
    [8] = {2189}, -- ID do ITEM 8
    [9] = {2190}, -- ID do ITEM 9
    [10] = {2191}, --ID do ITEM 10
    [11] = {0} -- NEUTRO
    }
    local qtdd = 10 -- Quantidade de Itens a Sortear // Não precisa apagar as demais linhas de configuração acima.
    local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)
    local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinação
    local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação
    local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima
    local premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)
    local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte
    local pos = {{x=1041, y=1030, z=6}, {x=1042, y=1030, z=6}, {x=1043, y=1030, z=6}} -- Posições onde os itens sorteados aparecerão
    local effect = 26 -- Efeito na hora de selecionar o item da sorte
    local eff = 30 -- Efeito ao criar os itens na mesa (hora do sorteio)
    local reff = 29 -- Efeito ao remover itens da mesa (ao finalizar)
    -------- FIM DAS CONFIGURAÇÕES --------

    function onUse(cid, item, frompos, item2, topos)
    local dir = getPlayerLookDir(cid)
    local gget = getGlobalStorageValue(gstrg)
    local gnumb = items[gget]
    local gnumba = items[gget + 1]
    local gnumbs = items[gget - 1]

    if gnumb then
    if dir == WEST or dir == EAST then -- Caso não esteja em posição de jogar.
    doPlayerSendTextMessage(cid, 18, "Para jogar, siga as dicas abaixo: \n Para escolher o item da sorte, vire-se para baixo e clique na alavanca até selecioná-lo. \n Para jogar, após ter selecionado o item da sorte, vire-se para cima e puxe novamente a alavanca.")

    elseif dir == NORTH then -- Posição de Jogar
    if gget ~= 0 then
    if getGlobalStorageValue(gstrg_control) < 1 then
    if getPlayerItemCount(cid, valor[1]) >= valor[2] then
    math1 = math.random(1, qtdd)
    math2 = math.random(1, qtdd)
    math3 = math.random(1, qtdd)
    doPlayerRemoveItem(cid, valor[1], valor[2])
    mayNotMove(cid, true)
    doAddCondition(cid, condition_infight)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Máquina em funcionamento, aguarde.")
    setGlobalStorageValue(gstrg_control, 1)
    --- Criando itens
    doSendMagicEffect(pos[1], eff)
    doCreateItem(items[math1][1], pos[1])
    setGlobalStorageValue(istrg[1], items[math1][1])
    addEvent(doSendMagicEffect, 1000, pos[2], eff)
    addEvent(doCreateItem, 1000, items[math2][1], pos[2])
    setGlobalStorageValue(istrg[2], items[math2][1])
    addEvent(doSendMagicEffect, 2000, pos[3], eff)
    addEvent(doCreateItem, 2000, items[math3][1], pos[3])
    setGlobalStorageValue(istrg[3], items[math3][1])
    --- Checando Itens
    if gnumbs[1] == getGlobalStorageValue(istrg[1]) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você já acertou o primeiro item da combinação.")
    setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
    else
    doPlayerSendTextMessage(cid, 18, "Que pena, já perdeu na primeira chance.")
    end
    if gnumbs[1] == getGlobalStorageValue(istrg[2]) then
    addEvent(doPlayerSendTextMessage, 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o segundo item da combinação.")
    setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
    else
    addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que pena, perdeu na segunda chance.")
    end
    if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
    addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o terceiro item da combinação.")
    setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
    else
    addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que pena, perdeu na terceira chance.")
    end
    addEvent(function()
    for z = 1, 3 do
    doRemoveItem(getTileItemById(pos[z], getGlobalStorageValue(istrg[z])).uid, 1)
    doSendMagicEffect(pos[z], reff)
    end
    mayNotMove(cid, false)
    setGlobalStorageValue(gstrg_control, 0)
    addEvent(CassPremio, 500, cid)
    end, 5000)
    --- Fim Checagem
    else
    doPlayerSendCancel(cid, "Você precisa de "..valor[2].." "..getItemNameById(valor[1]).." para jogar.")
    end
    else
    doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para jogar novamente.")
    end
    else
    doPlayerSendCancel(cid, "Primeiro selecione o item de sorte para poder jogar.")
    end

    elseif dir == SOUTH then -- Posição de Selecionar Item da Sorte
    if getGlobalStorageValue(gstrg_control) < 1 then
    if gget <= 0 then
    doCreateItem(gnumba[1], 1, iluck_pos)
    doSendMagicEffect(iluck_pos, effect)
    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumba[1]).." como seu item da sorte.")
    setGlobalStorageValue(gstrg, 2)
    elseif gget >= 2 and gget < (qtdd + 1) then
    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
    doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
    end
    doCreateItem(gnumb[1], 1, iluck_pos)
    doSendMagicEffect(iluck_pos, effect)
    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumb[1]).." como seu item da sorte.")
    setGlobalStorageValue(gstrg, (gget + 1))
    elseif gget >= (qtdd + 1) then
    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
    doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
    end
    doSendMagicEffect(iluck_pos, effect)
    doPlayerSendCancel(cid, "Você resetou os itens.")
    setGlobalStorageValue(gstrg, 0)
    end
    else
    doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para selecionar outro item da sorte.")
    end
    end
    else
    doPlayerSendCancel(cid, "Você ativou o Cassino Slots.")
    setGlobalStorageValue(gstrg, 0)
    end
    return true
    end

    function CassPremio(cid)
    if getPlayerStorageValue(cid, gstrg) == 1 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, você acertou um item da combinação e foi recompensado em "..comb1[2].." "..getItemNameById(comb1[1])..".")
    doPlayerAddItem(cid, comb1[1], comb1[2])
    setPlayerStorageValue(cid, gstrg, 0)
    elseif getPlayerStorageValue(cid, gstrg) == 2 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, foi por pouco, mas você acertou dois itens da combinação e foi recompensado em "..comb2[2].." "..getItemNameById(comb2[1])..".")
    doPlayerAddItem(cid, comb2[1], comb2[2])
    setPlayerStorageValue(cid, gstrg, 0)
    elseif getPlayerStorageValue(cid, gstrg) == 3 then
    doBroadcastMessage("Parabéns ao jogador "..getPlayerName(cid).." acertou as 3 combinações da Cassino Slots e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou TODOS itens da combinação e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
    doPlayerAddItem(cid, premio[1], premio[2])
    doPlayerAddItem(cid, comb3[1], comb3[2])
    setPlayerStorageValue(cid, gstrg, 0)
    elseif getPlayerStorageValue(cid, gstrg) > 3 then
    doPlayerSendCancel(cid, "Mais sorte da próxima vez.")
    setPlayerStorageValue(cid, gstrg, 0)
    end
    return true
    end

  • Agora em “actions.xml” adicione a tag abaixo:

     

     

    <action actionid="12129" script="cassino_slots.lua"/>

  • Agora basta configurar de acordo com as informações disponíveis no início do script.

 

  • Vejam o vídeo demonstrativo do Sistema em funcionamento.

 

 

 

CHANGELOG:

Update v1.1. (09/02/2015)

- Corrigido bug que impedia funcionamento na primeira execução.

 

Update v1.2. (10/02/2015)

- Corrigido problema que bugava storages do player.

- Corrigido bug que impedia alguns players de jogar.

- Adicionada tag de configuração para quantidade de itens que serão sorteados.

 

Update v1.3. (17/03/2015)

- Corrigido problema de erro no launcher ao dar clean e/ou o item da sorte não estar no lugar.

 

Criado por: Adriano Swatt'

1 mês depois...
duasrodasD
04 de maio de 2015 às 19:28

Show hein,parabéns o sistema é bem divertido,obrigado pela contribuição!

1 mês depois...
gonorreiaswatG
22 de junho de 2015 às 20:26

Show hein,parabéns o sistema é bem divertido,obrigado pela contribuição!

Muito obrigado, que bom que gostaram.

 

Façam bom aproveito.

6 meses depois...
samlecterS
21 de dezembro de 2015 às 22:38

Muito Bom, ainda não testei mas já deixei o Rep+ se funcionar, deixo outro ^_^

Uma dúvida, não entendi uma coisa, na configuração do prêmio que será recebido (em vermelho) o que coloco ali? deixo 6132 mesmo? tipo, se eu colocar um id de um item e o player escolher outro item ? queria que ele recebesse o item escolhido como item da sorte, para isso o id do prêmio não pode ser 1 só, teria de ser alguma coisa tipo:

 

local premio = = {"itemdasorte", 1} ao invés de local premio = {6132, 1} não?

 

Porque se eu colocar o id de um dos itens sorteados, e o item da sorte escolhido pelo player não for esse?

 

Quero que o player ao acertar os 3, ganhe o item escolhido por ele como item da sorte, então o que coloco em local premio ?

local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinação
local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação
local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima
local premio = {6132, 1} -- ID do Prêmio, Quantidade (que o player ganhará ao acertar os 3 itens)
local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte

Editado Dezembro 21 por samlecter

gonorreiaswatG
22 de dezembro de 2015 às 13:55

Boa tarde,

 

 

Tente assim:

#Obs: O prêmio não precisa ser configurado, pois será identificado automaticamente.

 

 

 

------- Script by: Adriano Swatt ----
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens.
local items = {
[0] = {0},  -- NEUTRO
[1] = {2182}, -- ID do ITEM 1
[2] = {2183}, -- ID do ITEM 2
[3] = {2184}, -- ID do ITEM 3
[4] = {2185}, -- ID do ITEM 4
[5] = {2186}, -- ID do ITEM 5
[6] = {2187}, -- ID do ITEM 6
[7] = {2188}, -- ID do ITEM 7
[8] = {2189}, -- ID do ITEM 8
[9] = {2190}, -- ID do ITEM 9
[10] = {2191}, --ID do ITEM 10
[11] = {0}  -- NEUTRO
}
local qtdd = 10 -- Quantidade de Itens a Sortear // Não precisa apagar as demais linhas de configuração acima.
local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinação
local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação
local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima
local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte
local pos = {{x=1041, y=1030, z=6}, {x=1042, y=1030, z=6}, {x=1043, y=1030, z=6}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da sorte
local eff = 30 -- Efeito ao criar os itens na mesa (hora do sorteio)
local reff = 29 -- Efeito ao remover itens da mesa (ao finalizar)
-------- FIM DAS CONFIGURAÇÕES --------

function onUse(cid, item, frompos, item2, topos)
local dir = getPlayerLookDir(cid)
local gget = getGlobalStorageValue(gstrg)
local gnumb = items[gget]
local gnumba = items[gget + 1]
local gnumbs = items[gget - 1]
    
    if gnumb then
        if dir == WEST or dir == EAST then -- Caso não esteja em posição de jogar.
            doPlayerSendTextMessage(cid, 18, "Para jogar, siga as dicas abaixo: \n Para escolher o item da sorte, vire-se para baixo e clique na alavanca até selecioná-lo. \n Para jogar, após ter selecionado o item da sorte, vire-se para cima e puxe novamente a alavanca.")
            
        elseif dir == NORTH then -- Posição de Jogar
            if gget ~= 0 then
                if getGlobalStorageValue(gstrg_control) < 1 then
                    if getPlayerItemCount(cid, valor[1]) >= valor[2] then
                    math1 = math.random(1, qtdd)
                    math2 = math.random(1, qtdd)
                    math3 = math.random(1, qtdd)
                        doPlayerRemoveItem(cid, valor[1], valor[2])
                        mayNotMove(cid, true)
                        doAddCondition(cid, condition_infight)
                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Máquina em funcionamento, aguarde.")
                        setGlobalStorageValue(gstrg_control, 1)
                    --- Criando itens
                        doSendMagicEffect(pos[1], eff)
                        doCreateItem(items[math1][1], pos[1])
                        setGlobalStorageValue(istrg[1], items[math1][1])
                        addEvent(doSendMagicEffect, 1000, pos[2], eff)
                        addEvent(doCreateItem, 1000, items[math2][1], pos[2])
                        setGlobalStorageValue(istrg[2], items[math2][1])
                        addEvent(doSendMagicEffect, 2000, pos[3], eff)
                        addEvent(doCreateItem, 2000, items[math3][1], pos[3])
                        setGlobalStorageValue(istrg[3], items[math3][1])
                    --- Checando Itens
                        if gnumbs[1] == getGlobalStorageValue(istrg[1]) then
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você já acertou o primeiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            doPlayerSendTextMessage(cid, 18, "Que pena, já perdeu na primeira chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[2]) then
                            addEvent(doPlayerSendTextMessage, 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o segundo item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que pena, perdeu na segunda chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o terceiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que pena, perdeu na terceira chance.")
                        end
                        addEvent(function()
                        for z = 1, 3 do
                            doRemoveItem(getTileItemById(pos[z], getGlobalStorageValue(istrg[z])).uid, 1)
                            doSendMagicEffect(pos[z], reff)
                        end
                            mayNotMove(cid, false)
                            setGlobalStorageValue(gstrg_control, 0)
                            addEvent(CassPremio, 500, cid)
                        end, 5000)
                    --- Fim Checagem
                    else
                        doPlayerSendCancel(cid, "Você precisa de "..valor[2].." "..getItemNameById(valor[1]).." para jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para jogar novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro selecione o item de sorte para poder jogar.")
            end
            
        elseif dir == SOUTH then -- Posição de Selecionar Item da Sorte
            if getGlobalStorageValue(gstrg_control) < 1 then
                if gget <= 0 then
                    doCreateItem(gnumba[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumba[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, 2)
                elseif gget >= 2 and gget < (qtdd + 1) then    
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doCreateItem(gnumb[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumb[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, (gget + 1))
                elseif gget >= (qtdd + 1) then
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você resetou os itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para selecionar outro item da sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Você ativou o Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid)
local gget = getGlobalStorageValue(gstrg)
local gnumb = items[gget]
    if gnumb then
        if getPlayerStorageValue(cid, gstrg) == 1 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, você acertou um item da combinação e foi recompensado em "..comb1[2].." "..getItemNameById(comb1[1])..".")
            doPlayerAddItem(cid, comb1[1], comb1[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) == 2 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, foi por pouco, mas você acertou dois itens da combinação e foi recompensado em "..comb2[2].." "..getItemNameById(comb2[1])..".")
            doPlayerAddItem(cid, comb2[1], comb2[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) == 3 then
            doBroadcastMessage("Parabéns ao jogador "..getPlayerName(cid).." acertou as 3 combinações da Cassino Slots e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou TODOS itens da combinação e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
            doPlayerAddItem(cid, gnumb, 1)
            doPlayerAddItem(cid, comb3[1], comb3[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) > 3 then
            doPlayerSendCancel(cid, "Mais sorte da próxima vez.")
            setPlayerStorageValue(cid, gstrg, 0)
        end
    else
        print('Ocorreu um erro ao detecer o premio.')
    end
return true
end

 

 

 

Boa sorte.

Editado Dezembro 22 por Adriano Swatt

AdministradorA
22 de dezembro de 2015 às 14:02

Boa @

Mais um sistema foda haha

samlecterS
23 de dezembro de 2015 às 23:13

Boa tarde,

 

 

Tente assim:

#Obs: O prêmio não precisa ser configurado, pois será identificado automaticamente.

 

 

 

------- Script by: Adriano Swatt ----
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens.
local items = {
[0] = {0},  -- NEUTRO
[1] = {2182}, -- ID do ITEM 1
[2] = {2183}, -- ID do ITEM 2
[3] = {2184}, -- ID do ITEM 3
[4] = {2185}, -- ID do ITEM 4
[5] = {2186}, -- ID do ITEM 5
[6] = {2187}, -- ID do ITEM 6
[7] = {2188}, -- ID do ITEM 7
[8] = {2189}, -- ID do ITEM 8
[9] = {2190}, -- ID do ITEM 9
[10] = {2191}, --ID do ITEM 10
[11] = {0}  -- NEUTRO
}
local qtdd = 10 -- Quantidade de Itens a Sortear // Não precisa apagar as demais linhas de configuração acima.
local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinação
local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação
local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima
local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte
local pos = {{x=1041, y=1030, z=6}, {x=1042, y=1030, z=6}, {x=1043, y=1030, z=6}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da sorte
local eff = 30 -- Efeito ao criar os itens na mesa (hora do sorteio)
local reff = 29 -- Efeito ao remover itens da mesa (ao finalizar)
-------- FIM DAS CONFIGURAÇÕES --------

function onUse(cid, item, frompos, item2, topos)
local dir = getPlayerLookDir(cid)
local gget = getGlobalStorageValue(gstrg)
local gnumb = items[gget]
local gnumba = items[gget + 1]
local gnumbs = items[gget - 1]
    
    if gnumb then
        if dir == WEST or dir == EAST then -- Caso não esteja em posição de jogar.
            doPlayerSendTextMessage(cid, 18, "Para jogar, siga as dicas abaixo: \n Para escolher o item da sorte, vire-se para baixo e clique na alavanca até selecioná-lo. \n Para jogar, após ter selecionado o item da sorte, vire-se para cima e puxe novamente a alavanca.")
            
        elseif dir == NORTH then -- Posição de Jogar
            if gget ~= 0 then
                if getGlobalStorageValue(gstrg_control) < 1 then
                    if getPlayerItemCount(cid, valor[1]) >= valor[2] then
                    math1 = math.random(1, qtdd)
                    math2 = math.random(1, qtdd)
                    math3 = math.random(1, qtdd)
                        doPlayerRemoveItem(cid, valor[1], valor[2])
                        mayNotMove(cid, true)
                        doAddCondition(cid, condition_infight)
                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Máquina em funcionamento, aguarde.")
                        setGlobalStorageValue(gstrg_control, 1)
                    --- Criando itens
                        doSendMagicEffect(pos[1], eff)
                        doCreateItem(items[math1][1], pos[1])
                        setGlobalStorageValue(istrg[1], items[math1][1])
                        addEvent(doSendMagicEffect, 1000, pos[2], eff)
                        addEvent(doCreateItem, 1000, items[math2][1], pos[2])
                        setGlobalStorageValue(istrg[2], items[math2][1])
                        addEvent(doSendMagicEffect, 2000, pos[3], eff)
                        addEvent(doCreateItem, 2000, items[math3][1], pos[3])
                        setGlobalStorageValue(istrg[3], items[math3][1])
                    --- Checando Itens
                        if gnumbs[1] == getGlobalStorageValue(istrg[1]) then
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você já acertou o primeiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            doPlayerSendTextMessage(cid, 18, "Que pena, já perdeu na primeira chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[2]) then
                            addEvent(doPlayerSendTextMessage, 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o segundo item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que pena, perdeu na segunda chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o terceiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que pena, perdeu na terceira chance.")
                        end
                        addEvent(function()
                        for z = 1, 3 do
                            doRemoveItem(getTileItemById(pos[z], getGlobalStorageValue(istrg[z])).uid, 1)
                            doSendMagicEffect(pos[z], reff)
                        end
                            mayNotMove(cid, false)
                            setGlobalStorageValue(gstrg_control, 0)
                            addEvent(CassPremio, 500, cid)
                        end, 5000)
                    --- Fim Checagem
                    else
                        doPlayerSendCancel(cid, "Você precisa de "..valor[2].." "..getItemNameById(valor[1]).." para jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para jogar novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro selecione o item de sorte para poder jogar.")
            end
            
        elseif dir == SOUTH then -- Posição de Selecionar Item da Sorte
            if getGlobalStorageValue(gstrg_control) < 1 then
                if gget <= 0 then
                    doCreateItem(gnumba[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumba[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, 2)
                elseif gget >= 2 and gget < (qtdd + 1) then    
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doCreateItem(gnumb[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumb[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, (gget + 1))
                elseif gget >= (qtdd + 1) then
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você resetou os itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para selecionar outro item da sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Você ativou o Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid)
local gget = getGlobalStorageValue(gstrg)
local gnumb = items[gget]
    if gnumb then
        if getPlayerStorageValue(cid, gstrg) == 1 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, você acertou um item da combinação e foi recompensado em "..comb1[2].." "..getItemNameById(comb1[1])..".")
            doPlayerAddItem(cid, comb1[1], comb1[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) == 2 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, foi por pouco, mas você acertou dois itens da combinação e foi recompensado em "..comb2[2].." "..getItemNameById(comb2[1])..".")
            doPlayerAddItem(cid, comb2[1], comb2[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) == 3 then
            doBroadcastMessage("Parabéns ao jogador "..getPlayerName(cid).." acertou as 3 combinações da Cassino Slots e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou TODOS itens da combinação e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
            doPlayerAddItem(cid, gnumb, 1)
            doPlayerAddItem(cid, comb3[1], comb3[2])
            setPlayerStorageValue(cid, gstrg, 0)
        elseif getPlayerStorageValue(cid, gstrg) > 3 then
            doPlayerSendCancel(cid, "Mais sorte da próxima vez.")
            setPlayerStorageValue(cid, gstrg, 0)
        end
    else
        print('Ocorreu um erro ao detecer o premio.')
    end
return true
end

 

 

 

Boa sorte.

Amigo, quando acerto os 3 itens, não ganho nada, nem o comb3 nem o item escolhido, quandoa certo 1 ou 2 eu ganho o comb1 e comb2, tem como me ajudar?

 

Editado Dezembro 24 por samlecter

gonorreiaswatG
27 de dezembro de 2015 às 13:27

Boa tarde,

 

Teste assim:

 

 

 

--[[ Script by: Adriano Swatt ]]--
local condition_infight = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition_infight, CONDITION_PARAM_TICKS, 8000)

local gstrg = 12129 -- Não Mexa, Storage de Controle Item Global.
local gstrg_control = 12130 -- Não Mexa, Storage de Controle Jogo em Execução.
local istrg = {12131, 12132, 12133} -- Não Mexa, Storage de Itens.
local items = {
    [0] = {0},  -- NEUTRO
    [1] = {2182}, -- ID do ITEM 1
    [2] = {2183}, -- ID do ITEM 2
    [3] = {2184}, -- ID do ITEM 3
    [4] = {2185}, -- ID do ITEM 4
    [5] = {2186}, -- ID do ITEM 5
    [6] = {2187}, -- ID do ITEM 6
    [7] = {2188}, -- ID do ITEM 7
    [8] = {2189}, -- ID do ITEM 8
    [9] = {2190}, -- ID do ITEM 9
    [10] = {2191}, --ID do ITEM 10
    [11] = {0}  -- NEUTRO
}
local qtdd = 10 -- Quantidade de Itens a Sortear // Não precisa apagar as demais linhas de configuração acima.
local valor = {2160, 10} -- ID da Moeda pra Jogar, Quantidade (preço)
local comb1 = {2160, 10} -- ID , Quantidade, para quem acertar 1 item da combinação
local comb2 = {2160, 20} -- ID , Quantidade, para quem acertar 2 item da combinação
local comb3 = {2160, 50} -- ID , Quantidade, para quem acertar todos itens da combinação + o prêmio configurado acima
local iluck_pos = {x=1040, y=1030, z=6} -- Posição onde fica a amostra do item da sorte
local pos = {{x=1041, y=1030, z=6}, {x=1042, y=1030, z=6}, {x=1043, y=1030, z=6}} -- Posições onde os itens sorteados aparecerão
local effect = 26 -- Efeito na hora de selecionar o item da sorte
local eff = 30 -- Efeito ao criar os itens na mesa (hora do sorteio)
local reff = 29 -- Efeito ao remover itens da mesa (ao finalizar)
-------- FIM DAS CONFIGURAÇÕES --------

function onUse(cid, item, frompos, item2, topos)
local dir = getPlayerLookDir(cid)
local gget = getGlobalStorageValue(gstrg)
local gnumb = items[gget]
local gnumba = items[gget + 1]
local gnumbs = items[gget - 1]
    
    if gnumb then
        if dir == WEST or dir == EAST then -- Caso não esteja em posição de jogar.
            doPlayerSendTextMessage(cid, 18, "Para jogar, siga as dicas abaixo: \n Para escolher o item da sorte, vire-se para baixo e clique na alavanca até selecioná-lo. \n Para jogar, após ter selecionado o item da sorte, vire-se para cima e puxe novamente a alavanca.")
            
        elseif dir == NORTH then -- Posição de Jogar
            if gget ~= 0 then
                if getGlobalStorageValue(gstrg_control) < 1 then
                    if getPlayerItemCount(cid, valor[1]) >= valor[2] then
                    math1 = math.random(1, qtdd)
                    math2 = math.random(1, qtdd)
                    math3 = math.random(1, qtdd)
                        doPlayerRemoveItem(cid, valor[1], valor[2])
                        mayNotMove(cid, true)
                        doAddCondition(cid, condition_infight)
                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Máquina em funcionamento, aguarde.")
                        setGlobalStorageValue(gstrg_control, 1)
                    --- Criando itens
                        doSendMagicEffect(pos[1], eff)
                        doCreateItem(items[math1][1], pos[1])
                        setGlobalStorageValue(istrg[1], items[math1][1])
                        addEvent(doSendMagicEffect, 1000, pos[2], eff)
                        addEvent(doCreateItem, 1000, items[math2][1], pos[2])
                        setGlobalStorageValue(istrg[2], items[math2][1])
                        addEvent(doSendMagicEffect, 2000, pos[3], eff)
                        addEvent(doCreateItem, 2000, items[math3][1], pos[3])
                        setGlobalStorageValue(istrg[3], items[math3][1])
                    --- Checando Itens
                        if gnumbs[1] == getGlobalStorageValue(istrg[1]) then
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você já acertou o primeiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            doPlayerSendTextMessage(cid, 18, "Que pena, já perdeu na primeira chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[2]) then
                            addEvent(doPlayerSendTextMessage, 1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o segundo item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 1000, cid, 18, "Que pena, perdeu na segunda chance.")
                        end
                        if gnumbs[1] == getGlobalStorageValue(istrg[3]) then
                            addEvent(doPlayerSendTextMessage, 2000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou o terceiro item da combinação.")
                            setPlayerStorageValue(cid, gstrg, (getPlayerStorageValue(cid, gstrg) + 1))
                        else
                            addEvent(doPlayerSendTextMessage, 2000, cid, 18, "Que pena, perdeu na terceira chance.")
                        end
                        addEvent(function()
                        for z = 1, 3 do
                            doRemoveItem(getTileItemById(pos[z], getGlobalStorageValue(istrg[z])).uid, 1)
                            doSendMagicEffect(pos[z], reff)
                        end
                            mayNotMove(cid, false)
                            setGlobalStorageValue(gstrg_control, 0)
                            premioID = getGlobalStorageValue(istrg[3])
                            addEvent(CassPremio, 500, cid, premioID)
                        end, 5000)
                    --- Fim Checagem
                    else
                        doPlayerSendCancel(cid, "Você precisa de "..valor[2].." "..getItemNameById(valor[1]).." para jogar.")
                    end
                else
                    doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para jogar novamente.")
                end
            else
                doPlayerSendCancel(cid, "Primeiro selecione o item de sorte para poder jogar.")
            end
            
        elseif dir == SOUTH then -- Posição de Selecionar Item da Sorte
            if getGlobalStorageValue(gstrg_control) < 1 then
                if gget <= 0 then
                    doCreateItem(gnumba[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumba[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, 2)
                elseif gget >= 2 and gget < (qtdd + 1) then    
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doCreateItem(gnumb[1], 1, iluck_pos)
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você selecionou o "..getItemNameById(gnumb[1]).." como seu item da sorte.")
                    setGlobalStorageValue(gstrg, (gget + 1))
                elseif gget >= (qtdd + 1) then
                    if getTileItemById(iluck_pos, gnumbs[1]).uid > 0 then
                        doRemoveItem(getTileItemById(iluck_pos, gnumbs[1]).uid, 1)
                    end
                    doSendMagicEffect(iluck_pos, effect)
                    doPlayerSendCancel(cid, "Você resetou os itens.")
                    setGlobalStorageValue(gstrg, 0)
                end
            else
                doPlayerSendCancel(cid, "Precisa esperar o jogo finalizar para selecionar outro item da sorte.")
            end
        end
    else
        doPlayerSendCancel(cid, "Você ativou o Cassino Slots.")
        setGlobalStorageValue(gstrg, 0)
    end
return true
end

function CassPremio(cid, premioID)
    if getPlayerStorageValue(cid, gstrg) == 1 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hmmm, você acertou um item da combinação e foi recompensado em "..comb1[2].." "..getItemNameById(comb1[1])..".")
        doPlayerAddItem(cid, comb1[1], comb1[2])
        setPlayerStorageValue(cid, gstrg, 0)
    elseif getPlayerStorageValue(cid, gstrg) == 2 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uffa, foi por pouco, mas você acertou dois itens da combinação e foi recompensado em "..comb2[2].." "..getItemNameById(comb2[1])..".")
        doPlayerAddItem(cid, comb2[1], comb2[2])
        setPlayerStorageValue(cid, gstrg, 0)
    elseif getPlayerStorageValue(cid, gstrg) == 3 then
        doBroadcastMessage("Parabéns ao jogador "..getPlayerName(cid).." acertou as 3 combinações da Cassino Slots e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns, você acertou TODOS itens da combinação e foi recompensado em "..comb3[2].." "..getItemNameById(comb3[1]).." e "..premio[2].." "..getItemNameById(premio[1])..".")
        setPlayerStorageValue(cid, gstrg, 0)
        doPlayerAddItem(cid, comb3[1], comb3[2])
        doPlayerAddItem(cid, premioID, 1)
    elseif getPlayerStorageValue(cid, gstrg) > 3 then
        doPlayerSendCancel(cid, "Mais sorte da próxima vez.")
        setPlayerStorageValue(cid, gstrg, 0)
    end
return true
end

 

Boa sorte.

9 anos depois...
rixy23R
28 de fevereiro de 2025 às 16:03

Estou muito satisfeito com a informação deste site onde se pode tentar jogar onion em Portugal, este site chamou-me a atenção com as opções mais precisas de jogos que se podem obter onion - solverde, por isso se estiver interessado recomendo que tente jogar aqui!

Editado Fevereiro 28 por rixy23

1 mês depois...
rixy23R
09 de março de 2025 às 16:30

Tenho mais do que a certeza de que vai gostar de jogar aqui, porque este é o melhor sítio para passar o tempo a jogar online winunique casino , por isso recomendo que encontre uma solução fixe para jogar e se divertir a jogar online, adoro este sítio e vou continuar a jogar aqui e a divertir-me, claro, significa muito para mim!

Editado Março 9 por rixy23

1 mês depois...
25 de abril de 2025 às 03:05

Muito interessante esse sistema de cassino que você desenvolveu, realmente traz uma dinâmica divertida e interativa pro servidor!  Falando em cassino, se você curte essa temática e quer experimentar algo parecido com apostas reais, recomendo dar uma olhada na pixbet clássico ou moderno. Já uso há um bom tempo, especialmente por ser voltado ao público brasileiro, com apostas esportivas e bônus atrativos. Funciona muito bem e é super confiável pra quem quer se divertir de forma segura.

Editado Abril 25 por deathstar8914

2 meses depois...
rixy23R
25 de junho de 2025 às 14:38

Entre os jogos mais populares hoje em dia está o jogo do aviador, que é algo como um clássico imortal e aqui podem vê-lo com mais detalhe, recomendo vivamente por isso, não vos vai deixar ficar mal baixar 888bets aviator, é sem dúvida uma boa opção para aderir ao jogo do aviador aqui em Moçambique!

Editado Junho 25 por rixy23

1 mês depois...
28 de julho de 2025 às 11:24

Quais são as opções de apostas em Moçambique?

28 de julho de 2025 às 11:30

-

 

5 minutos atrás, connerben461 disse:

Quais são as opções de apostas em Moçambique?

Procurei muito tempo por uma plataforma conveniente para apostar em Moçambique. É importante que haja localização e acesso estável. A 1win moçambique oferece exatamente isso — o site funciona rapidamente e tem todos os desportos populares. Depósitos na moeda nacional sem comissões adicionais. A interface é intuitiva e o registo leva apenas alguns minutos.

 

Editado Julho 28 por anatoliy3378

rixy23R
29 de julho de 2025 às 13:49

Olá, pode ver quais os jogos que Moçambique oferece na 1xbet aqui, é um bom site para se juntar ao mundo dos jogos online contagiosos, se estiver interessado, pode saber mais aqui, é um site muito bom e interessante para jogar e divertir-se agora, e ter a oportunidade de ganhar dinheiro, por isso, se estiver interessado, veja aqui.

Editado Julho 29 por rixy23